
package com.be.beadmin.project.service;

import com.be.beadmin.common.entity.PageEntity;
import com.be.beadmin.project.dto.output.PayFileInfoEx;
import com.be.beadmin.project.dto.input.PayFileInfoDto;
import com.be.beadmin.project.dto.input.PayFileInfoQueryCriteria;
import com.be.beadmin.project.entity.PayFileInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @description 服务接口
* @author zjm
* @date 2023-08-31
**/
public interface PayFileInfoService {

    /**
    * 分页的查询接口
    * @param pageEntity
    * @return
    */
    Page<PayFileInfoEx> getPayFileInfoByPage(PageEntity pageEntity);

    /**
    * @param payFileInfoDto
    */
    void addPayFileInfo(PayFileInfoDto payFileInfoDto);

    /**
    * @param payFileInfoDto
    */
    void updatePayFileInfo(PayFileInfoDto payFileInfoDto);

    /**
    * @param id
    */
    void delPayFileInfo(String id);

    /**
    * 删除多个角色
    * @param ids
    */
    void delPayFileInfos (List<String> ids);

    /**
     * 付款信息附件上传
     * @param infoId
     * @param stageName
     * @param multipartFile
     * @param bucketName
     */
    void uploadFileByPayInfo(HttpServletRequest request, String infoId, String stageName, MultipartFile[] multipartFile, String bucketName);

    /**
     * 付款信息附件上传
     * @param request
     * @param infoId
     * @param stageName
     * @param bucketName
     */
    PayFileInfoEx getFileByPayInfo(HttpServletRequest request, String infoId, String stageName, String bucketName);

    /**
     *
     * @param payFileInfoId
     * @return
     */
    String getPayPreviewUrl(String payFileInfoId) throws Exception;
}